#include <stdlib.h>  
#include <stdio.h>  
// 包含 MySQL 相关的头文件，以便使用 MySQL 提供的函数和数据结构
#include "mysql.h"  

// 当出现错误时，打印错误信息，关闭数据库连接，结束 MySQL 库的使用并退出程序
void finish_with_error(MYSQL *con)
{
    // 打印 MySQL 连接的错误信息到标准输出
    fprintf(stdout, "%s\n", mysql_error(con));
    // 如果连接指针不为空，则关闭该连接
    if (NULL!=con)
        mysql_close(con);
    // 结束 MySQL 库的使用
    mysql_library_end();
    // 以错误码 1 退出程序
    exit(1);        
}

int main(int argc, char *argv[])  
{  
    // 声明一个指向 MYSQL 结构体的指针，用于管理 MySQL 连接
    MYSQL *mysql_handle = NULL;	
    // 初始化 MySQL 库，如果初始化失败，打印错误信息并返回 1
    if (mysql_library_init(0, NULL, NULL)) {
        fprintf(stderr, "Could not initialize MySQL library.\n");
        return 1;
    } 
    // 初始化 MySQL 连接句柄，如果初始化失败，打印错误信息并退出程序
    mysql_handle = mysql_init(mysql_handle);
    if (NULL == mysql_handle) {
        fprintf(stderr, "%s\n", "initialize failed");
        exit(1);
    }      
    // 尝试连接到 MySQL 数据库，使用指定的主机名、用户名、密码和数据库名
    if ((mysql_handle = mysql_real_connect(mysql_handle, "localhost", "root", "root", "student", 0, NULL, 0)) == NULL) {
        // 若连接失败，打印提示信息
        printf("aaaa\n");
        // 调用错误处理函数
        finish_with_error(mysql_handle);
    }
    // 若连接成功，打印提示信息
    printf("bbbb\n");
    // 程序成功结束，返回成功退出码
    return EXIT_SUCCESS;  
}